package com.caocaog.market.finance.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.caocaog.market.finance.pay.vo.BillStatistics;
import com.caocaog.market.finance.pay.vo.WithdrawalsRecord;

import java.math.BigDecimal;
import java.util.List;

public interface BillStatisticsService extends IService<BillStatistics> {


    /**
     * 获取可提现金额
     *
     * @param shopId 店铺id
     */
    BigDecimal getCanBeWithdrawnAmount(String shopId);


    /**
     * 获取待结算金额
     *
     * @param shopId 店铺id
     */
    BigDecimal getToBeSettledAmount(String shopId);


    /**
     * 七天销售记录
     *
     * @param shopId 店铺id
     */
    List<BillStatistics> getSevenDaysSalesRecords(String shopId);


    /**
     * 全部销售记录
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 销售记录分页信息
     */
    IPage<BillStatistics> getSalesRecordPage(Page<BillStatistics> page, String shopId);


    /**
     * 已结算账单
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 已结算账单分页信息
     */
    IPage<BillStatistics> getInvoiceSettledPage(Page<BillStatistics> page, String shopId);


    /**
     * 待结算账单
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 待结算账单分页信息
     */
    IPage<BillStatistics> getPendingBillPage(Page<BillStatistics> page, String shopId);


    /**
     * 提现记录
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 销售记录分页信息
     */
    IPage<WithdrawalsRecord> getWithdrawalsRecordPage(Page<WithdrawalsRecord> page, String shopId);

}
